package app

import (
	"net/http"

	"github.com/gin-gonic/gin"
)

// Message 消息
//
// 前后台交互消息，多用于错误提示
//
// swagger:model
type Message struct {
	// 错误代码
	Code int `json:"code,omitempty"`
	// 错误信息
	Error string `json:"error,omitempty"`
	// 消息
	Msg string `json:"msg,omitempty"`
}

// NotFound 资源未找到.
func NotFound(c *gin.Context, err string) {
	c.JSON(http.StatusNotFound, Message{Error: err})
}

// OK 正常返回.
func OK(c *gin.Context, msg string) {
	c.JSON(http.StatusOK, Message{Msg: msg})
}

// BindError 绑定错误.
func BindError(c *gin.Context, err error) {
	c.JSON(http.StatusBadRequest, Message{Error: err.Error()})
}

// SaveError 创建错误.
func SaveError(c *gin.Context, err error) {
	c.JSON(http.StatusInsufficientStorage, Message{Error: err.Error()})
}

// Error 内部错误.
func Error(c *gin.Context, err error) {
	c.JSON(http.StatusInternalServerError, Message{Error: err.Error()})
}
